/*
 * EmpresaCliente.java
 *
 * Created on 23 de agosto de 2007, 15:57
 */

package despachador.administracion;

import excepciones.AvwException;
import gestores.administracion.GestorEmpresaCliente;
import gestores.pagina.GestorCliente;
import java.io.*;
import java.net.*;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import negocio.EmpresaClienteNegocio;
import javax.servlet.*;
import javax.servlet.http.*;
import util.Utiles;

/**
 *
 * @author Administrador
 * @version
 */
public class EmpresaCliente extends HttpServlet {
    
    /** Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
     * @param request servlet request
     * @param response servlet response
     */
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException, SQLException {      
        
        ArrayList<HashMap> paises = new ArrayList<HashMap>();
        ArrayList<HashMap> provincias = new ArrayList<HashMap>();
        
        String codigo = request.getParameter("codigo");
        String descripcion = request.getParameter("descripcion");        
        String telefono = request.getParameter("telefono");
        String cuit = request.getParameter("cuit");
        String mail = request.getParameter("mail");
        String calle = request.getParameter("calle");
        String numero = request.getParameter("numero");
        String piso = request.getParameter("piso");
        String dpto = request.getParameter("dpto");
        String localidad= localidad = request.getParameter("localidad");
        String provincia= provincia = request.getParameter("provincia");
        String pais= pais = request.getParameter("pais");
        
       /**
        if(request.getParameter("localidad") != null) {
            localidad = request.getParameter("localidad");               
        }
        if(request.getParameter("provincia") != null) {
            provincia = request.getParameter("provincia");
        }
        if(request.getParameter("pais") != null) {
            pais = request.getParameter("pais");
        } 
        **/
        
        String opcion ="";
        if(request.getParameter("opcion")!= null){
            opcion = (String)request.getParameter("opcion");
        }       
        if(opcion.equals("modificar")){
                this.armarPaginaEmpresaCliente(request,response);
          }
        if(opcion.equals("masInfo")){
                this.armarPaginaMasInfoEmpresaCliente(request,response);
          }
        if(opcion.equals("crear")){
                this.armarPaginaEmpresaCliente(request,response);
        }
         if(opcion.equals("modificarConfirmado")){
                   if (mail != null && !mail.equals("")){
                try {                    
                    if (GestorEmpresaCliente.modificarEmpresaCliente(codigo, 
                            descripcion, telefono,
                            cuit,mail,calle,
                            numero, piso,
                            dpto,
                            localidad,provincia,
                            pais)){
                        // Utilizo la variable msg para saber si el email ya existe o no
                        //si existe msg es true
                        //request.setAttribute("_msg","1");                                               
                        armarPagina(request,response);
                    }else{
                        request.setAttribute("_msg","true");                              
                        armarPaginaEmpresaCliente(request,response);
                    }//fin else
                } catch (AvwException ex) {
                    ex.printStackTrace();
                } catch (SQLException ex) {
                    ex.printStackTrace();
                } catch (ServletException ex) {
                    ex.printStackTrace();
                }//fin else
                    }else{
                        armarPagina(request,response);
                    }
             }//FIN IF MODIFICARCONFIRMADO
        try{
           
            if(opcion.equals("crearConfirmado")){              
                if (mail != null && !mail.equals("")){
                    if (GestorEmpresaCliente.insertarEmpresaCliente(descripcion, telefono,
                            cuit,mail,calle,
                            numero, piso,
                            dpto,
                            localidad,provincia,
                            pais)){
                        // Utilizo la variable msg para saber si el email ya existe o no
                        //si existe msg es true
                       // request.setAttribute("_msg","true");
                        armarPagina(request,response);
                    }else{
                        request.setAttribute("_msg","true");
                        armarPaginaEmpresaCliente(request,response);                        
                    }//fin else
                }else{
                    armarPagina(request,response);
                }
            }else if (opcion.equals("listarLocalidades")){
                ArrayList<HashMap> localidades = new ArrayList<HashMap>();
               if( provincia != null){localidades = GestorCliente.listarLocalidades(provincia); }
                request.setAttribute("localidades", localidades);
                armarPaginaEmpresaCliente(request,response);
            }else{
                paises = GestorCliente.listarPaises();
                provincias = GestorCliente.listarProvincias();
                request.setAttribute("paises", paises);
                request.setAttribute("provincias", provincias);
                armarPaginaEmpresaCliente(request,response);
            }
            
        }catch (Exception e) {
            request.setAttribute("error",
                    e.getMessage());
        }//fin catch               
        dispatch(request, response, "/compositor/administracion/trescuerpos.jsp");
    }
     protected void dispatch(HttpServletRequest request,
            HttpServletResponse response, String page)
            throws javax.servlet.ServletException,
            java.io.IOException {
        RequestDispatcher dispatcher =
                getServletContext().
                getRequestDispatcher(page);
        dispatcher.forward(request, response);
    }
     private void armarPagina(HttpServletRequest request,
            HttpServletResponse response) throws ServletException{
         
        // Especificamos que pagina se coloca en cada parte del layout
        request.setAttribute("1", "/vistas/administracion/encabezado.jsp");
        request.setAttribute("2", "/vistas/administracion/menu.jsp");
        request.setAttribute("3", "/vistas/administracion/empresasClientes.jsp");
        request.setAttribute("4", "/vistas/administracion/pie.jsp");
        try {
                  
            dispatch(request, response, "/compositor/administracion/trescuerpos.jsp");
        } catch (IOException ex) {
            ex.printStackTrace();
        } catch (ServletException ex) {
            ex.printStackTrace();
        }
     }
     private void armarPaginaEmpresaCliente(HttpServletRequest request,
            HttpServletResponse response) throws ServletException{
         
        // Especificamos que pagina se coloca en cada parte del layout
        request.setAttribute("1", "/vistas/administracion/encabezado.jsp");
        request.setAttribute("2", "/vistas/administracion/menu.jsp");
        request.setAttribute("3", "/vistas/administracion/empresaCliente.jsp");
        request.setAttribute("4", "/vistas/administracion/pie.jsp");
        try {
                  
            dispatch(request, response, "/compositor/administracion/trescuerpos.jsp");
        } catch (IOException ex) {
            ex.printStackTrace();
        } catch (ServletException ex) {
            ex.printStackTrace();
        }
    }
     private void armarPaginaMasInfoEmpresaCliente(HttpServletRequest request,
            HttpServletResponse response) throws ServletException{
         
        // Especificamos que pagina se coloca en cada parte del layout
        request.setAttribute("1", "/vistas/administracion/encabezado.jsp");
        request.setAttribute("2", "/vistas/administracion/menu.jsp");
        request.setAttribute("3", "/vistas/administracion/masInfoEmpresa.jsp");
        request.setAttribute("4", "/vistas/administracion/pie.jsp");
        try {
                  
            dispatch(request, response, "/compositor/administracion/trescuerpos.jsp");
        } catch (IOException ex) {
            ex.printStackTrace();
        } catch (ServletException ex) {
            ex.printStackTrace();
        }
    }
    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
    /** Handles the HTTP <code>GET</code> method.
     * @param request servlet request
     * @param response servlet response
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        try {
            processRequest(request, response);
        } catch (ServletException ex) {
            ex.printStackTrace();
        } catch (IOException ex) {
            ex.printStackTrace();
        } catch (SQLException ex) {
            ex.printStackTrace();
        }
    }
    
    /** Handles the HTTP <code>POST</code> method.
     * @param request servlet request
     * @param response servlet response
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        try {
            processRequest(request, response);
        } catch (ServletException ex) {
            ex.printStackTrace();
        } catch (IOException ex) {
            ex.printStackTrace();
        } catch (SQLException ex) {
            ex.printStackTrace();
        }
    }
    
    /** Returns a short description of the servlet.
     */
    public String getServletInfo() {
        return "Short description";
    }
    // </editor-fold>
}
